package com.dbh.alg.datastructure.queue;

/**
 * @author 董帮辉
 * @date 2025/5/14
 **/
public interface Queue<E> {

    /**
     * 向对列尾插入值
     * @param value -待插入值
     * @return 插入成功返回true，插入失败返回false
     */
    boolean offer(E value);

    /**
     * 从对列头获取值，并移除
     * @return 如果队列非空返回对头值，否则返回null
     */
    E poll();

    /**
     * 从对列头获取值，不移除
     * @return 如果队列非空返回对头值，否则返回null
     */
    E peek();

    /**
     * 检查对列是否为空
     * @return 空返回true，否则返回false
     */
    boolean isEmpty();

    /**
     * 检查对列是否已满
     * @return 满返回true，否则返回false
     */
    boolean isFull();
}
